package com.etc.service.impl;

import com.etc.mapper.AdminDao;
import com.etc.pojo.Admin;
import com.etc.pojo.User;
import com.etc.service.AdminService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class AdminServiceImpl implements AdminService {

    //调用dao
    @Autowired
    AdminDao adminDao;

    /**
     * @deprecated 用户登录
     * @param adminName  管理员名
     * @param adminPwd   密码
     * @return  判断该管理员是否存在：存在返回该管理员对象  不存在则返回null
     * @author 赵伟伟
     */
    @Override
    public Admin adminLogin(@Param("adminName") String adminName, @Param("adminPwd") String adminPwd) {
        String pwd = DigestUtils.md5Hex(adminPwd);
        adminPwd = DigestUtils.md5Hex(pwd + User.SOLT);
        return adminDao.queryByNameAndPwd(adminName, adminPwd);
    }

    /**
     * @deprecated 管理员注册
     * @param admin
     * @return  admin
     * @author 赵伟伟
     */
    @Override
    public boolean register(Admin admin) {
        String pwd = DigestUtils.md5Hex(admin.getAdminPwd());
        admin.setAdminPwd(DigestUtils.md5Hex(pwd + User.SOLT));
        return adminDao.insertAdmin(admin) == 0 ? false:true;
    }

    /**
     * @deprecated 根据管理员姓名查询：用于注册时判断用户是否已经存在
     * @param name
     * @return
     * @author 赵伟伟
     */
    @Override
    public Admin queryByName(String name) {

        return adminDao.queryByName(name);
    }

    /**
     * @deprecated 管理员信息全查
     * @return list集合
     * @author 赵伟伟
     */
    @Override
    public PageInfo<Admin> getAllAdminByPage(@Param("pageNum") int pageNum,
                                             @Param("pageSize") int pageSize,
                                             @Param("titlekey") String titlekey) {

        //1.开始分页
        PageHelper.startPage(pageNum,pageSize);
        //2.执行查询所有用户信息
        List<Admin> list=adminDao.queryAllAdminByPage(titlekey);
        //3.通过pageInfo进行包装，pageInfo包含了非常丰富的分页属性
        PageInfo<Admin> pageInfo = new PageInfo<Admin>(list);
        return pageInfo;
    }

    /**
     * 根据管理员编号删除管理员信息
     * @param aid 指定的管理员编号
     * @return  true:已删除   false：未删除
     * @
     */
    @Override
    public boolean delAdminById(int aid) {
        return adminDao.delAdminById(aid) == 0 ? false:true;
    }

    /**
     * @deprecated 修改管理员状态
     * @param aid 编号
     * @return
     * @author 赵伟伟
     */
    @Override
    public boolean updateById(int aid) {
        return adminDao.updateById(aid) == 0 ? false : true;
    }

    /**
     * 修改管理员信息
     * @param admin 一个管理员对象
     * @return true:修改成功，否则而失败
     * @author 赵伟伟
     */
    @Override
    public boolean updateAdmin(Admin admin) {
        String pwd = DigestUtils.md5Hex(admin.getAdminPwd());
        admin.setAdminPwd(DigestUtils.md5Hex(pwd + User.SOLT));
        return adminDao.updateAdmin(admin) == 0 ? false : true;
    }


}
